package com.shenhaofeng.app.download;

/**
 * 下载全局回调
 * Created by Administrator on 2016/9/21.
 */
public interface Callback {


    /**
     * 在一个下载任务启动的时候被调用
     * @param executor
     */
    void onDownloadStart(DownloadExecutor executor);


    /**
     * 在一个下载任务完成的时候被调用
     * @param result
     */
    void onDownloadSuccess(DownloadResult result);


    /**
     * 在一个下载任务停止的时候被调用
     * @param executor
     */
    void onDownloadStop(DownloadExecutor executor);


    /**
     * 在一个下载任务取消的时候被调用
     * @param executor
     */
    void onDownloadCancel(DownloadExecutor executor);


    /**
     * 在一个下载任务失败的时候被调用
     * @param executor
     * @param throwable
     */
    void onDownloadFail(DownloadExecutor executor, Throwable throwable);


    /**
     * 在一个下载过程中进度的回调方法
     * @param executor
     * @param maxCount
     * @param count
     */
    void onDownloadProgress(DownloadExecutor executor, long maxCount, long count);
}
